package com.sf.shiva.oms.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 
 * 计时器，计算并打印方法的运行时间
 * 
 * <pre>
 * HISTORY
 * ****************************************************************************
 *  ID    DATE            PERSON            REASON
 *  1     2018年8月6日         LA.01367604           Create
 * ****************************************************************************
 * </pre>
 * 
 * @author LA.01367604
 * @version 1.0
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Timer {

    public enum PrintSource {
        /** 控制台信息 */
        CONSOLE,
        /** log日志中 */
        LOGGER
    }

    public PrintSource print() default PrintSource.CONSOLE;

    public enum TimingUnit {
        /** 秒 */
        SECOND,
        /** 毫秒 */
        MS
    }
    /**
     * 计时单位，默认为秒
     * 
     * @return
     * @author LA.01367604-2018年8月6日
     */
    public TimingUnit unit() default TimingUnit.SECOND;

}
